<?php namespace Admin\Controller; 

//商品模型
use \Common\Model\Goods;

// 商品控制器
class GoodsController extends CommonController{

//	成员属性
	private $goodsModel;


	//构造函数
	public function __init()
	{
		
//		实例化商品模型
		$this -> goodsModel = new Goods;
		parent::__init();
	}
    //品牌商品主页
    public function index(){
    	
		
		
////			从数据库获得信息，并显示到主页
			$goodsData = $this -> goodsModel -> get();
//			var_dump($goodsData);die;
//			将数据分配到前台
			View::with('goodsData',$goodsData);
		
		
		
		
    	View::make();
    }
	
	
//	添加商品
	public function add(){
		if(IS_POST){
//			var_dump($_POST);die;
			
			$result = $this -> goodsModel -> store();
			
			if(!$result){
				View::error($this -> goodsModel -> getError());
			}
			
			View::success('添加成功',U('index'));
		}
		
		
		
//		获取分类表
		$cateData = Db::table('snshop_categroy') -> get();
//		执行树桩结构
		$cateData = Data::tree($cateData,'cname');
//		分配前台
		View::with('cateData',$cateData);
//		var_dump($cateData);die;
		
//		获取品牌
		$brandData = Db::table('sn_brand') -> get();
//		分配数据
		View::with('brandData',$brandData);
//		var_dump($brandData);die;





    	View::make();
	}
	
	
//	删除商品
	public function del(){
//		echo 'del';die;

		$result = $this -> goodsModel -> del();
		if(!$result){
			View::error('删除失败');
		}
		View::success('删除成功',U('index'));
	}
	
//	编辑商品
	public function edit(){
		if(IS_POST){
//			var_dump($_POST);die;
			
//			修改数据库数据
//			交给type模型处理数据
			$result = $this -> goodsModel -> edit();
			
			
			
			if(!$result){
			View::error('修改失败');
		}
		View::success('修改成功',U('index'));
			
		}
		
		
		
//		获得传入的tid
		$gid = Q('get.gid',0,'intval');
		
//		商品表
		$data = Db::table('snshop_goods') -> where('gid',$gid) -> get();
		$data = current($data);
//		var_dump($data);die;
//		关联商品属性表关联类型属性表
//		$data_attr = Db::table('snshop_goods')
//			-> join('snshop_goods_attr','gid','=','snshop_goods_gid')
//			-> where('gid',$gid)
//			->get();
//		直接查询数据,因为join时候，两个字段相同，需要添加各自的表明加.
		$data_attr = Db::table('snshop_goods_attr') 
			-> join('snshop_type_attr','snshop_goods_attr.taid','=','snshop_type_attr.taid')
			-> where('snshop_goods_gid',$gid)
			-> get();
//		var_dump($data_attr);die;
		
		
			
//		关联商品详细表
//		$data_detail = Db::table('snshop_goods')
//			-> join('snshop_detail','gid','=','snshop_goods_gid')
//			-> where('gid',$gid)
//			->find();
		$data_detail = Db::table('snshop_detail') -> where('snshop_goods_gid',$gid) -> get();
		$data_detail = current($data_detail);
//		var_dump($data_detail);die;

//		设置一个空数组，来接受这些值
		$imgUrl = array();
		$dirN = "Upload/Content/16/07/pro-z/";
//		将获得的图片地址用 分号转化为数组
		$small = $data_detail['small'];
		$small = explode(";", $small);
		foreach($small as $k => $v){
			$small[$k] = $dirN.$v;
		}
	 	$imgUrl['small'] = $small;
		
		$medium = $data_detail['medium'];
		$medium = explode(";", $medium);
		foreach($medium as $k => $v){
			$medium[$k] = $dirN.$v;
		}
	 	$imgUrl['medium'] = $medium;
		
		$big = $data_detail['big'];
		$big = explode(";", $big);
		foreach($big as $k => $v){
			$big[$k] = $dirN.$v;
		}
	 	$imgUrl['big'] = $big;

//		列表图也转一下
		$pic = $data['pic'];
		$pic = explode(";", $pic);
	 	$imgUrl['pic'] = $pic;

//		var_dump($imgUrl);die;
//		将数据分配到前台
		View::with('imgUrl',$imgUrl);



//		将数据分配到前台
		View::with('data',$data);
		View::with('data_attr',$data_attr);
		View::with('data_detail',$data_detail);
		
//		获取分类表
		$cateData = Db::table('snshop_categroy') -> get();
//		执行树桩结构
		$cateData = Data::tree($cateData,'cname');
//		分配前台
		View::with('cateData',$cateData);
//		var_dump($cateData);die;
		
//		获取品牌
		$brandData = Db::table('sn_brand') -> get();
//		分配数据
		View::with('brandData',$brandData);
//		var_dump($brandData);die;
		
		
		
		
		View::make();
	}



	
	
//	异步处理
	public function getTypeAttr(){
//		echo 3;die;
//		var_dump($_POST);die;
		$tid = Q('post.tid',0,'intval');
//		echo $tid;
//		查询类型属性，获得数据，返回前台
		$data = Db::table('snshop_type_attr') -> where('tid',$tid) -> get();
//		将其中的tavalue 属性分割成数组
		foreach($data as $k => $v){
			$data[$k]['tavalue'] = explode(",", $v['tavalue']);
		}
//		var_dump($data);die;
		View::ajax($data);die;





	}
	
	
	
	
//uploadify异步上传
public function upload()
{
    $file = Upload::path('Upload/Content/' . date('y/m').'/pro-list')->make();
    if (empty($file)) {
        $this->ajax(Upload::getError());
    } else {
        /** $file内部就是以下这个数组
            $file = array(
                0 => array(
                'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
                'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
                'image' => 1
            ),
        );**/
        //上传成功，把上传好的信息返给js
        $data = $file[0];
//      echo json_encode($data);exit;
//		跟上面一样，只不过在HD框架里可以这样写
		View::ajax($data);die;
    }
}


//uploadify异步上传 商品详情表添加大中小图(商品图册)
public function upload_detail()
{
	$uploadDir = 'Upload/Content/' . date('y/m').'/pro-z';
    $file = Upload::path($uploadDir)->make();
    if (empty($file)) {
        $this->ajax(Upload::getError());
    } else {
        /** $file内部就是以下这个数组
            $file = array(
                0 => array(
                'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
                'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
                'image' => 1
            ),
        );**/
        
//      进行缩略
//				2.进行缩略处理
//				配置输出的缩略图片的文件名
//				大图
			$outFile_small=$uploadDir.'/thumb_small.'.$file[0]['basename'];
			$path_small=Image::thumb($file[0]['path'], $outFile_small, 60, 60, 6);
			
//				中图
			$outFile_medium=$uploadDir.'/thumb_medium.'.$file[0]['basename'];
			$path_medium=Image::thumb($file[0]['path'], $outFile_medium, 360, 360, 6);
			
//				小图
			$outFile_big=$uploadDir.'/thumb_big.'.$file[0]['basename'];
			$path_big=Image::thumb($file[0]['path'], $outFile_big, 720, 720, 6);
//      	将三张图的路径压入$file里面去
        	$file[0]['path_small'] = $outFile_small;
        	$file[0]['path_medium'] = $path_medium;
        	$file[0]['path_big'] = $path_big;
        	
        	
        	
//      	1_big.jpg

//			1
//			
//			1_big.jpg
//			1_med.jpg
//			1_smll.jpg
        	
        //上传成功，把上传好的信息返给js
        $data = $file[0];
//      echo json_encode($data);exit;
//		跟上面一样，只不过在HD框架里可以这样写
		View::ajax($data);die;
    }
}

	
}


//			
////			返回前台数据		
//			$data = $file[0];
//			View::ajax($data);die;


?>